#include "stm32f10x.h"
 
void Timer_Init(void)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);				//开启TIM3的时钟
	TIM_InternalClockConfig(TIM3);									//选择TIM3为内部时钟
	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;				//配置时基单元
	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;		//此参数用于配置滤波器时钟，不影响时基单元功能
	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;	//向上计数
	TIM_TimeBaseInitStructure.TIM_Period = 65536-1;					//计数的周期，也就是计数到这里，然后下一个数清零
	TIM_TimeBaseInitStructure.TIM_Prescaler = 72-1;					//分频器，对TIM3时钟周期进行分频
	TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;			//重复计数器，高级定时器才会用到
	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
}
 
void Timer_Run()				//开启定时器部分
{
	TIM_SetCounter(TIM3, 0);	//先将CNT的值清零
	TIM_Cmd(TIM3, ENABLE);		//使能TIM3定时器
}
 
void Timer_Stop()				//停止定时器
{
	TIM_Cmd(TIM3, DISABLE);		//使能TIM3定时器
}
 
uint16_t Timer_GetCounter()
{
	return TIM_GetCounter(TIM3);
}
